#    pythonequations is a collection of equations expressed as Python classes
#    Copyright (C) 2008 James R. Phillips
#    2548 Vera Cruz Drive
#    Birmingham, AL 35235 USA
#    email: zunzun@zunzun.com
#
#    License: BSD-style (see LICENSE.txt in main source directory)
#    Version info: $Id: Optical.py 274 2010-09-29 13:16:14Z zunzun.com $

import pythonequations, pythonequations.EquationBaseClasses, pythonequations.ExtraCodeForEquationBaseClasses
import numpy
numpy.seterr(all = 'raise') # numpy raises warnings, convert to exceptions to trap them



class Cauchy2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "CAUCHY"
    _HTML = "n = A + B/x<sup>2</sup> + C/x<sup>4</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]/_id[_cwo[0]+i] + coeff[2]/_id[_cwo[1]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / pow(x_in, 2.0) + C / pow(x_in, 4.0);\n"
        return s



class Conrady1_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "CONRADY1"
    _HTML = "n = A + B/x + C/x<sup>3.5</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    CannotAcceptDataWithZeroX = True
    CannotAcceptDataWithNegativeX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]/_id[_cwo[0]+i] + coeff[2]/_id[_cwo[1]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[3.5]), [3.5]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / x_in + C / pow(x_in, 3.5);\n"
        return s



class Conrady2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "CONRADY2"
    _HTML = "n = A + B/x<sup>2</sup> + C/x<sup>3.5</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    CannotAcceptDataWithZeroX = True
    CannotAcceptDataWithNegativeX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]/_id[_cwo[0]+i] + coeff[2]/_id[_cwo[1]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[3.5]), [3.5]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / pow(x_in, 2.0) + C / pow(x_in, 3.5);\n"
        return s



class Hartmann1_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HARTMANN1"
    _HTML = "n = A + B/(C - x)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    function_cpp_code = 'temp = coeff[0] + coeff[1] / (coeff[2] - _id[_cwo[0]+i]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / (C - x_in);\n"
        return s



class Hartmann2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HARTMANN2"
    _HTML = "n = A + B/(C - x)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    function_cpp_code = 'temp = coeff[0] + coeff[1] / pow(coeff[2] - _id[_cwo[0]+i], 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / pow(C - x_in, 2.0);\n"
        return s



class Hartmann3a_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HARTMANN3a"
    _HTML = "n = A + B/(C - x)<sup>1.2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    function_cpp_code = 'temp = coeff[0] + coeff[1] / pow(coeff[2] - _id[_cwo[0]+i], 1.2);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / pow(C - x_in, 1.2);\n"
        return s



class Hartmann3b_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = True
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HARTMANN3b"
    _HTML = "n = A/(x - B)<sup>1.2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B')
    function_cpp_code = 'temp = coeff[0] / pow(_id[_cwo[0]+i] - coeff[1], 1.2);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])

    def SpecificCodeCPP(self):
        s = "\ttemp = A / pow(x_in - B, 1.2);\n"
        return s



class Hartmann4_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HARTMANN4"
    _HTML = "n = A + B/(C - x) + D/(E - x)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1] / (coeff[2] - _id[_cwo[0]+i]) + coeff[3] / (coeff[4] - _id[_cwo[0]+i]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B / (C - x_in) + D / (E - x_in);\n"
        return s



class Herzberger2X2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGR2X2"
    _HTML = "n = A + Bx<sup>2</sup> + C / (x<sup>2</sup> - 0.028) + D / (x<sup>2</sup> - 0.028)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] / (_id[_cwo[0]+i] - 0.028) + coeff[3] / pow(_id[_cwo[0]+i] - 0.028, 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C / (pow(x_in, 2.0) - 0.028) + D / pow(pow(x_in, 2.0) - 0.028, 2.0);\n"
        return s



class Herzberger3X2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGR3X2"
    _HTML = "n = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D / (x<sup>2</sup> - 0.028) + E / (x<sup>2</sup> - 0.028)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] * _id[_cwo[1]+i] + coeff[3] / (_id[_cwo[0]+i] - 0.028) + coeff[4] / pow(_id[_cwo[0]+i] - 0.028, 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D / (pow(x_in, 2.0) - 0.028) + E / pow(pow(x_in, 2.0) - 0.028, 2.0);\n"
        return s



class Herzberger4X2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGR4X2"
    _HTML = "n = A + Bx<sup>2</sup> + Cx<sup>4</sup> + Dx<sup>6</sup> + E / (x<sup>2</sup> - 0.028) + F / (x<sup>2</sup> - 0.028)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] * _id[_cwo[1]+i] + coeff[3] * _id[_cwo[2]+i] + coeff[4] / (_id[_cwo[0]+i] - 0.028) + coeff[5] / pow(_id[_cwo[0]+i] - 0.028, 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D * pow(x_in, 6.0) + E / (pow(x_in, 2.0) - 0.028) + F / pow(pow(x_in, 2.0) - 0.028, 2.0);\n"
        return s



class Herzberger3X3_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGR3X3"
    _HTML = "n = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D / (x<sup>2</sup> - 0.028) + E / (x<sup>2</sup> - 0.028)<sup>2</sup> + F / (x<sup>2</sup> - 0.028)<sup>4</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] * _id[_cwo[1]+i] + coeff[3] / (_id[_cwo[0]+i] - 0.028) + coeff[4] / pow(_id[_cwo[0]+i] - 0.028, 2.0) + coeff[5] / pow(_id[_cwo[0]+i] - 0.028, 4.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D / (pow(x_in, 2.0) - 0.028) + E / pow(pow(x_in, 2.0) - 0.028, 2.0) + F / pow(pow(x_in, 2.0) - 0.028, 4.0);\n"
        return s



class Herzberger5X2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGR5X2"
    _HTML = "n = A + Bx<sup>2</sup> + Cx<sup>4</sup> + Dx<sup>6</sup> + Ex<sup>8</sup> + F / (x<sup>2</sup> - 0.028) + G / (x<sup>2</sup> - 0.028)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] * _id[_cwo[1]+i] + coeff[3] * _id[_cwo[2]+i] + coeff[4] * _id[_cwo[3]+i] + coeff[5] / (_id[_cwo[0]+i] - 0.028) + coeff[6] / pow(_id[_cwo[0]+i] - 0.028, 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D * pow(x_in, 6.0) +  + E * pow(x_in, 8.0) + F / (pow(x_in, 2.0) - 0.028) + G / pow(pow(x_in, 2.0) - 0.028, 2.0);\n"
        return s



class HerzbergerJK_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HERZBRGRJK"
    _HTML = "n = A + Bx<sup>2</sup> + Cx<sup>4</sup> + Dx<sup>6</sup> + E / (x<sup>2</sup> - J) + F / (x<sup>2</sup> - K)<sup>2</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'J', 'K')
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2] * _id[_cwo[1]+i] + coeff[3] * _id[_cwo[2]+i] + coeff[4] / (_id[_cwo[0]+i] - coeff[6]) + coeff[5] / pow(_id[_cwo[0]+i] - coeff[7], 2.0);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D * pow(x_in, 6.0) + E / (pow(x_in, 2.0) - J) + F / pow(pow(x_in, 2.0) - K, 2.0);\n"
        return s



class Schott2X3_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT2X3"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + D/x<sup>4</sup> + E/x<sup>6</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1] * _id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]/_id[_cwo[1]+i] + coeff[4]/_id[_cwo[2]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C / pow(x_in, 2.0) + D / pow(x_in, 4.0) + E / pow(x_in, 6.0);\n"
        return s



class Schott2X4_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT2X4"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + D/x<sup>4</sup> + E/x<sup>6</sup> + F/x<sup>8</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]/_id[_cwo[1]+i] + coeff[4]/_id[_cwo[2]+i] + coeff[5]/_id[_cwo[3]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C / pow(x_in, 2.0) + D / pow(x_in, 4.0) + E / pow(x_in, 6.0) + F / pow(x_in, 8.0);\n"
        return s



class Schott2X5_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT2X5"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + D/x<sup>4</sup> + E/x<sup>6</sup> + F/x<sup>8</sup> + G/x<sup>10</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]/_id[_cwo[1]+i] + coeff[4]/_id[_cwo[2]+i] + coeff[5]/_id[_cwo[3]+i] + coeff[6]/_id[_cwo[4]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[10.0]), [10.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C / pow(x_in, 2.0) + D / pow(x_in, 4.0) + E / pow(x_in, 6.0) + F / pow(x_in, 8.0) + G / pow(x_in, 10.0);\n"
        return s



class Schott2X6_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT2X6"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + D/x<sup>4</sup> + E/x<sup>6</sup> + F/x<sup>8</sup> + G/x<sup>10</sup> + H/x<sup>12</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]/_id[_cwo[1]+i] + coeff[4]/_id[_cwo[2]+i] + coeff[5]/_id[_cwo[3]+i] + coeff[6]/_id[_cwo[4]+i] + coeff[7]/_id[_cwo[5]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[10.0]), [10.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[12.0]), [12.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C / pow(x_in, 2.0) + D / pow(x_in, 4.0) + E / pow(x_in, 6.0) + F / pow(x_in, 8.0) + G / pow(x_in, 10.0) + H / pow(x_in, 12.0);\n"
        return s



class Schott3X3_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT3X3"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>2</sup> + E/x<sup>4</sup> + F/x<sup>6</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[0]+i] + coeff[4]/_id[_cwo[1]+i] + coeff[5]/_id[_cwo[2]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D / pow(x_in, 2.0) + E / pow(x_in, 4.0) + F / pow(x_in, 6.0);\n"
        return s



class Schott3X4_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT3X4"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>2</sup> + E/x<sup>4</sup> + F/x<sup>6</sup> + G/x<sup>8</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[0]+i] + coeff[4]/_id[_cwo[1]+i] + coeff[5]/_id[_cwo[2]+i] + coeff[6]/_id[_cwo[3]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D / pow(x_in, 2.0) + E / pow(x_in, 4.0) + F / pow(x_in, 6.0) + G / pow(x_in, 8.0);\n"
        return s



class Schott3X5_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT3X5"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>2</sup> + E/x<sup>4</sup> + F/x<sup>6</sup> + G/x<sup>8</sup> + H/x<sup>10</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[0]+i] + coeff[4]/_id[_cwo[1]+i] + coeff[5]/_id[_cwo[2]+i] + coeff[6]/_id[_cwo[3]+i] + coeff[7]/_id[_cwo[4]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[10.0]), [10.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D / pow(x_in, 2.0) + E / pow(x_in, 4.0) + F / pow(x_in, 6.0) + G / pow(x_in, 8.0) + H / pow(x_in, 10.0);\n"
        return s



class Schott4X4_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT4X4"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + Dx<sup>6</sup> + E/x<sup>2</sup> + F/x<sup>4</sup> + G/x<sup>6</sup> + H/x<sup>8</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]*_id[_cwo[2]+i] + coeff[4]/_id[_cwo[0]+i] + coeff[5]/_id[_cwo[1]+i] + coeff[6]/_id[_cwo[2]+i] + coeff[7]/_id[_cwo[3]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D * pow(x_in, 6.0) + E / pow(x_in, 2.0) + F / pow(x_in, 4.0) + G / pow(x_in, 6.0) + H / pow(x_in, 8.0);\n"
        return s



class Schott5X5_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SCHOTT5X5"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + Dx<sup>6</sup> + Ex<sup>8</sup> + F/x<sup>2</sup> + G/x<sup>4</sup> + H/x<sup>6</sup> + J/x<sup>8</sup> + K/x<sup>10</sup>"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]*_id[_cwo[2]+i] + coeff[4]*_id[_cwo[3]+i] + coeff[5]/_id[_cwo[0]+i] + coeff[6]/_id[_cwo[1]+i] + coeff[7]/_id[_cwo[2]+i] + coeff[8]/_id[_cwo[3]+i] + coeff[9]/_id[_cwo[4]+i];'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[8.0]), [8.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[10.0]), [10.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B * pow(x_in, 2.0) + C * pow(x_in, 4.0) + D * pow(x_in, 6.0) + E * pow(x_in, 8.0) + F / pow(x_in, 2.0) + G / pow(x_in, 4.0) + H / pow(x_in, 6.0) + J / pow(x_in, 8.0) + K / pow(x_in, 10.0);\n"
        return s



class Sell1T_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL1T"
    _HTML = "n<sup>2</sup> = 1 + Ax<sup>2</sup> / (x<sup>2</sup> - B<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B')
    function_cpp_code = 'temp = 1.0 + coeff[0]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[1]*coeff[1]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = 1.0 + A*x_in*x_in/(x_in*x_in-B*B);\n"
        return s



class Sell2T_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL2T"
    _HTML = "n<sup>2</sup> = 1 + Ax<sup>2</sup>/(x<sup>2</sup>-B<sup>2</sup>) + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    function_cpp_code = 'temp = 1.0 + coeff[0]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[1]*coeff[1]) + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = 1.0 + A*x_in*x_in/(x_in*x_in-B*B) + C*x_in*x_in/(x_in*x_in-D*D);\n"
        return s



class Sell3T_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL3T"
    _HTML = "n<sup>2</sup> = 1 + Ax<sup>2</sup>/(x<sup>2</sup>-B<sup>2</sup>) + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>) + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    function_cpp_code = 'temp = 1.0 + coeff[0]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[1]*coeff[1]) + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]) + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = 1.0 + A*x_in*x_in/(x_in*x_in-B*B) + C*x_in*x_in/(x_in*x_in-D*D) + E*x_in*x_in/(x_in*x_in-F*F);\n"
        return s



class Sell4T_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL4T"
    _HTML = "n<sup>2</sup> = 1 + Ax<sup>2</sup>/(x<sup>2</sup>-B<sup>2</sup>) + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>) + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>) + Gx<sup>2</sup>/(x<sup>2</sup>-H<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H')
    function_cpp_code = 'temp = 1.0 + coeff[0]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[1]*coeff[1]) + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]) + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5]*coeff[5]) + coeff[6]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[7]*coeff[7]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = 1.0 + A*x_in*x_in/(x_in*x_in-B*B) + C*x_in*x_in/(x_in*x_in-D*D) + E*x_in*x_in/(x_in*x_in-F*F) + G*x_in*x_in/(x_in*x_in-H*H);\n"
        return s



class Sell5T_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL5T"
    _HTML = "n<sup>2</sup> = 1 + Ax<sup>2</sup>/(x<sup>2</sup>-B<sup>2</sup>) + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>) + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>) + Gx<sup>2</sup>/(x<sup>2</sup>-H<sup>2</sup>) + Jx<sup>2</sup>/(x<sup>2</sup>-K<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K')
    function_cpp_code = 'temp = 1.0 + coeff[0]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[1]*coeff[1]) + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]) + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5]*coeff[5]) + coeff[6]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[7]*coeff[7]) + coeff[8]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[9]*coeff[9]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = 1.0 + A*x_in*x_in/(x_in*x_in-B*B) + C*x_in*x_in/(x_in*x_in-D*D) + E*x_in*x_in/(x_in*x_in-F*F) + G*x_in*x_in/(x_in*x_in-H*H) + J*x_in*x_in/(x_in*x_in-K*K);\n"
        return s



class Sell1TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL1TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> / (x<sup>2</sup> - C<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C);\n"
        return s



class Sell2TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL2TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E);\n"
        return s



class Sell3TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL3TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G);\n"
        return s



class Sell4TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL4TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>) + Hx<sup>2</sup>/(x<sup>2</sup>-J<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]) + coeff[7]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[8]*coeff[8]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G) + H*x_in*x_in/(x_in*x_in-J*J);\n"
        return s



class Sell5TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL5TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>) + Hx<sup>2</sup>/(x<sup>2</sup>-J<sup>2</sup>) + Kx<sup>2</sup>/(x<sup>2</sup>-M<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]) + coeff[7]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[8]*coeff[8]) + coeff[9]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[10]*coeff[10]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G) + H*x_in*x_in/(x_in*x_in-J*J) + K*x_in*x_in/(x_in*x_in-M*M);\n"
        return s



class Sell6TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL6TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>) + Hx<sup>2</sup>/(x<sup>2</sup>-J<sup>2</sup>) + Kx<sup>2</sup>/(x<sup>2</sup>-M<sup>2</sup>) + Nx<sup>2</sup>/(x<sup>2</sup>-P<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]) + coeff[7]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[8]*coeff[8]) + coeff[9]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[10]*coeff[10]) + coeff[10]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[12]*coeff[12]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G) + H*x_in*x_in/(x_in*x_in-J*J) + K*x_in*x_in/(x_in*x_in-M*M) + N*x_in*x_in/(x_in*x_in-P*P);\n"
        return s



class Sell7TA_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELL7TA"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>) + Hx<sup>2</sup>/(x<sup>2</sup>-J<sup>2</sup>) + Kx<sup>2</sup>/(x<sup>2</sup>-M<sup>2</sup>) + Nx<sup>2</sup>/(x<sup>2</sup>-P<sup>2</sup>) + Qx<sup>2</sup>/(x<sup>2</sup>-R<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'M', 'N', 'P', 'Q', 'R')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]) + coeff[7]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[8]*coeff[8]) + coeff[9]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[10]*coeff[10]) + coeff[10]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[12]*coeff[12]) + coeff[13]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[14]*coeff[14]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G) + H*x_in*x_in/(x_in*x_in-J*J) + K*x_in*x_in/(x_in*x_in-M*M) + N*x_in*x_in/(x_in*x_in-P*P) + Q*x_in*x_in/(x_in*x_in-R*R);\n"
        return s



class HoO1_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HoO1"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C / (x<sup>2</sup> - D<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2] / (_id[_cwo[0]+i]-coeff[3]*coeff[3]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C / (x_in*x_in-D*D);\n"
        return s



class HoO2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "HoO2"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>2</sup> / (x<sup>2</sup> - D<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*x_in*x_in/(x_in*x_in-D*D);\n"
        return s



class Sellmod1_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD1"
    _HTML = "n<sup>2</sup> = A + Bx + Cx<sup>2</sup> + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]*_id[_cwo[1]+i]/(_id[_cwo[1]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in + C*x_in*x_in + D*x_in*x_in/(x_in*x_in-E*E);\n"
        return s



class Sellmod1A_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD1A"
    _HTML = "n<sup>2</sup> = A + Bx + Cx<sup>2</sup> + D/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/(_id[_cwo[1]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_X(NameOrValueFlag=1), []])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in + C*x_in*x_in + D/(x_in*x_in-E*E);\n"
        return s



class Sellmod2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD2"
    _HTML = "n<sup>2</sup> = A + Bx + Cx<sup>4</sup> + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[0]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*x_in*x_in*x_in*x_in + D*x_in*x_in/(x_in*x_in-E*E);\n"
        return s



class Sellmod2A_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD2A"
    _HTML = "n<sup>2</sup> = A + Bx + Cx<sup>4</sup> + D/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*x_in*x_in*x_in*x_in + D/(x_in*x_in-E*E);\n"
        return s



class Sellmod3_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = True
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD3"
    _HTML = "n<sup>2</sup> = (Ax<sup>2</sup>+B)/(x<sup>2</sup>-C<sup>2</sup>) + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = (coeff[0]*_id[_cwo[0]+i]+coeff[1])/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = (A*x_in*x_in+B)/(x_in*x_in-C*C) + D*x_in*x_in/(x_in*x_in-E*E);\n"
        return s



class Sellmod4_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD4"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + Dx<sup>2</sup>/(x<sup>2</sup>-E<sup>2</sup>) + Fx<sup>2</sup>/(x<sup>2</sup>-G<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C/(x_in*x_in) + D*x_in*x_in/(x_in*x_in-E*E) + F*x_in*x_in/(x_in*x_in-G*G);\n"
        return s



class Sellmod4A_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD4A"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/x<sup>2</sup> + D/(x<sup>2</sup>-E<sup>2</sup>) + F/(x<sup>2</sup>-G<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]/_id[_cwo[0]+i] + coeff[3]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]) + coeff[5]/(_id[_cwo[0]+i]-coeff[6]*coeff[6]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C/(x_in*x_in) + D/(x_in*x_in-E*E) + F/(x_in*x_in-G*G);\n"
        return s



class Sellmod5_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD5"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>) + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]) + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*x_in*x_in/(x_in*x_in-D*D) + E*x_in*x_in/(x_in*x_in-F*F);\n"
        return s



class Sellmod6_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD6"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup>/(x<sup>2</sup>-C<sup>2</sup>) + D/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]/(_id[_cwo[0]+i]-coeff[4]*coeff[4]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in/(x_in*x_in-C*C) + D/(x_in*x_in-E*E);\n"
        return s



class Sellmod7_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD7"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>6</sup> + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[2]+i] + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[1]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*pow(x_in, 4.0) + D/pow(x_in, 6.0) + E*x_in*x_in/(x_in*x_in-F*F);\n"
        return s



class Sellmod7A_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD7A"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>6</sup> + E/(x<sup>2</sup>-F<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[2]+i] + coeff[4]/(_id[_cwo[1]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*pow(x_in, 4.0) + D/pow(x_in, 6.0) + E/(x_in*x_in-F*F);\n"
        return s



class Sellmod8_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD8"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/(x<sup>2</sup>-E<sup>2</sup>) + F/(x<sup>2</sup>-G<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/(_id[_cwo[1]+i]-coeff[4]*coeff[4]) + coeff[5]/(_id[_cwo[1]+i]-coeff[6]*coeff[6]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*pow(x_in, 4.0) + D/(x_in*x_in-E*E) + F/(x_in*x_in-G*G);\n"
        return s



class Sellmod9_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "SELLMOD9"
    _HTML = "n<sup>2</sup> = A + B/x<sup>2</sup> + C/x<sup>4</sup> + D/x<sup>6</sup> + Ex<sup>2</sup>/(x<sup>2</sup>-F<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[2]+i] + coeff[4]/(_id[_cwo[1]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[6.0]), [6.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B/(x_in*x_in) + C/pow(x_in, 4.0) + D/pow(x_in, 6.0) + E*x_in*x_in/(x_in*x_in-F*F);\n"
        return s



class Kingslake1_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "KINGSLAKE1"
    _HTML = "n<sup>2</sup> = A + B/(x<sup>2</sup>-C<sup>2</sup>) + D/(x<sup>2</sup>-E<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E')
    function_cpp_code = 'temp = coeff[0] + coeff[0]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B/(x_in*x_in-C*C) + D/(x_in*x_in-E*E);\n"
        return s



class Kingslake2_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "KINGSLAKE2"
    _HTML = "n<sup>2</sup> = A + B/(x<sup>2</sup>-C<sup>2</sup>) + D/(x<sup>2</sup>-E<sup>2</sup>) + F/(x<sup>2</sup>-G<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    function_cpp_code = 'temp = coeff[0] + coeff[1]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]) + coeff[3]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]) + coeff[4]/(_id[_cwo[0]+i]-coeff[5]*coeff[5]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B/(x_in*x_in-C*C) + D/(x_in*x_in-E*E) + F/(x_in*x_in-G*G);\n"
        return s



class Misc01_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "MISC01"
    _HTML = "n<sup>2</sup> = A + B/(x<sup>2</sup>-C<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C')
    function_cpp_code = 'temp = coeff[0] + coeff[1]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B/(x_in*x_in-C*C);\n"
        return s



class Misc02_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "MISC02"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + C/(x<sup>2</sup>-D<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    function_cpp_code = 'temp = coeff[0] + coeff[1]/(_id[_cwo[0]+i]-coeff[2]*coeff[2]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C/(x_in*x_in-D*D);\n"
        return s



class Misc03_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "MISC03"
    _HTML = "n<sup>2</sup> = A + B/x<sup>2</sup> + Cx<sup>2</sup>/(x<sup>2</sup>-D<sup>2</sup>)"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]/_id[_cwo[0]+i] + coeff[2]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[3]*coeff[3]);'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B/(x_in*x_in) + C*x_in*x_in/(x_in*x_in-D*D);\n"
        return s



class Misc04_2D(pythonequations.EquationBaseClasses.Equation2D):
    RequiresAutoGeneratedGrowthAndDecayForms = False
    RequiresAutoGeneratedOffsetForm = False
    RequiresAutoGeneratedReciprocalForm = False
    RequiresAutoGeneratedInverseForms = False
    _name = "MISC04"
    _HTML = "n<sup>2</sup> = A + Bx<sup>2</sup> + Cx<sup>4</sup> + D/x<sup>2</sup> + Ex<sup>2</sup>/(x<sup>2</sup>-F+(Gx<sup>2</sup>/(x<sup>2</sup>-F)))"
    webCitationLink = 'http://www.optics.arizona.edu/palmer/cgi-bin/index/dispeqns.pdf'
    coefficientDesignatorTuple = ('A', 'B', 'C', 'D', 'E', 'F', 'G')
    CannotAcceptDataWithZeroX = True
    function_cpp_code = 'temp = coeff[0] + coeff[1]*_id[_cwo[0]+i] + coeff[2]*_id[_cwo[1]+i] + coeff[3]/_id[_cwo[0]+i] + coeff[4]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5] + (coeff[6]*_id[_cwo[0]+i]/(_id[_cwo[0]+i]-coeff[5])));'


    def CreateCacheGenerationList(self):
        self.CacheGenerationList = []
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[2.0]), [2.0]])
        self.CacheGenerationList.append([pythonequations.ExtraCodeForEquationBaseClasses.CG_PowX(NameOrValueFlag=1, args=[4.0]), [4.0]])

    def SpecificCodeCPP(self):
        s = "\ttemp = A + B*x_in*x_in + C*x_in*x_in*x_in*x_in + D/(x_in*x_in) + E*x_in*x_in/(x_in*x_in-F+(G*x_in*x_in/(x_in*x_in-F)));\n"
        return s



